﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentNHibernate.Automapping.Alterations;
using ADIGRE.Domain;
using FluentNHibernate.Mapping;
using FluentNHibernate.Automapping;

namespace ADIGRE.Infrastructure.NHibernateMaps
{
    public class EntradaMap : IAutoMappingOverride<Entrada>
    {
        public void Override(AutoMapping<Entrada> mapping)
        {
            mapping.DiscriminateSubClassesOnColumn(typeof(EnumLancamento).Name).Not.Nullable()
                .SubClass<Dizimo>(m =>
                {
                    m.Map(x => x.Id);
                    m.Map(x => x.DtReferencia);
                    m.References(x => x.Dizimista);
                })
                .SubClass<Oferta>(m =>
                {
                    m.Map(x => x.Id);
                })
                .SubClass<OfertaEspecial>(m =>
                {
                    m.Map(x => x.Id);
                    m.Map(x => x.DtReferencia);
                    m.Map(x => x.Parcela);
                    m.References(x => x.Pessoa);
                })
                .SubClass<OutrasEntradas>(m =>
                {
                    m.Map(x => x.Id);
                })
                ;
        }

    }
}
